Freehand system and method for creating, editing, and manipulating block diagrams

ABSTRACT

A method of integrating freehand user input into a block diagram environment is disclosed. The freehand user input is a user&#39;s approximation of a diagram component or feature of a component which is received by the block diagram environment and compared to multiple patterns stored in a storage location. The storage location holds patterns of block diagram components and block diagram component features. The freehand user input may be displayed, superimposed on a block diagram being shown to the user. Upon the freehand user input being matched to one of the patterns representing a block diagram component or feature of a component, the freehand user input is replaced on the displayed block diagram with an electronic device drawn rendering of the matched diagram feature component or feature of a component. Partial matches of the user drawn input may result in a menu of choices being presented to the user for selection.

FIELD OF THE INVENTION

The illustrative embodiment of the present invention relates generallyto block diagrams and more particularly to the use of freehand inputdata in the creation, editing and manipulation of block diagrams.

BACKGROUND

Freehand user input such as input from a mouse or optical pen operatedby a user of a computer system or other electronic device is accepted bymany different types of applications. For example, freehand input from amouse is accepted by Microsoft's Paint program and enables the user toconstruct freehand drawings on a display surface connected to a computersystem or other electronic device. One type of freehand user input isGraffiti®, a text recognition system which is used in conjunction withthe Palm OS® from PalmSource of Sunnyvale, Calif. in handheld PDAs(Personal Digital Assistants). The acceptance of the freehand inputenables an application to interact with the user in an easy and wellunderstood manner and enables the user to customize the displayed outputof the particular application.

Block diagram environments such as Simulink(g from The MathWorks ofNatick, Mass., enable a user to construct models of dynamic systems.These models include graphical references to system components which maybe used to simulate the system operations. Current block diagramenvironment tools enable a user to drag items from pre-defined templatesinto a block diagram. The components being dragged into the blockdiagram include attributes enabling the component to be modeled in thesystem during the simulation of the diagram. Unfortunately, conventionalblock diagram environments do not allow a user to sketch in systemcomponents using freehand input. The result is a lengthy series of dragand drop operations that the user is required to perform whenconstructing the block diagram. Additionally, the user must also firstsearch to find the desired component in the proper template.

SUMMARY OF THE INVENTION

The illustrative embodiment of the present invention provides a methodof integrating freehand user input into a block diagram environment. Thefreehand user input is a user's approximation of a diagram component orfeature of a component which is received by the block diagramenvironment and compared to multiple patterns stored in a storagelocation. The storage location holds patterns of block diagramcomponents and block diagram component features. The freehand user inputmay be displayed, superimposed on a block diagram being shown to theuser. Upon the freehand user input being matched to one of the storedpatterns representing a block diagram component or feature of acomponent, the freehand user input is replaced on the displayed blockdiagram with an electronic device drawn rendering of the matched diagramfeature component or feature of a component. The component is also addedto the block diagram model data. In one implementation, the user inputdisplayed on the block diagram and the electronic device drawn renderingof the feature or component may be simultaneously displayed pending userconfirmation of the selection. Partial matches of the user drawn inputmay result in a menu of choices being presented to the user forselection.

In one embodiment in an electronic device holding a block diagramenvironment with at least one block diagram, the electronic device alsointerfaced with a display surface displaying a block diagram, a methodreceives freehand user input entered with a pointing device into theblock diagram. The method also compares the user input to at least oneof multiple stored patterns of block diagram components and features ofblock diagram components. In the event of a match, the method adds theblock diagram component or block diagram component feature to the blockdiagram model data and updates the displayed block diagram with aprogram-drawn block diagram component/feature representing the inputdata.

In another embodiment, in an electronic device interfaced with a displaysurface, a system includes a block diagram environment with at least oneblock diagram displayed on the display surface. The system also includesa pointing device interfaced with the electronic device, the pointingdevice being used to transmit freehand user input to the block diagramdisplayed on the display surface. The system additionally includes astorage location holding multiple block diagram component patterns andblock diagram component feature patterns to which the freehand userinput is compared. Matching block diagram components and componentfeatures from the storage location are rendered on the electronic devicedrawn diagram in the event of a match.

In a different embodiment in an electronic device holding a blockdiagram environment with at least one block diagram, the electronicdevice also interfaced with a display surface displaying a blockdiagram, a method receives freehand user input entered with a pointingdevice into the block diagram. The method also analyzes the user inputto identify the user input as a block diagram component or block diagramcomponent feature. In the event of an identification, the method addsthe block diagram component or block diagram component feature to theblock diagram model data and updates the displayed block diagram with aprogram-drawn block diagram component/feature representing the inputdata.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an environment suitable for practicing theillustrative embodiment of the present invention;

FIG. 2A is a flow chart of the sequence of steps followed by theillustrative embodiment of the present invention to compare freehanduser input to stored diagram components and features;

FIG. 2B is a flowchart examining the comparison and normalizationprocess in greater detail;

FIG. 3A is a view of the illustrative embodiment of the presentinvention showing received freehand user input displayed in a blockdiagram environment;

FIG. 3B is a view of the illustrative embodiment of the presentinvention showing a electronic device drawn diagram component based onthe freehand user input;

FIG. 4A is a view of the illustrative embodiment of the presentinvention showing freehand user input being appended to a previouslydrawn electronic device generated diagram component;

FIG. 4B is a view of the illustrative embodiment of the presentinvention showing a electronic device drawn replacement of the freehanduser input FIG. 4A;

FIG. 5A is a view of the illustrative embodiment of the presentinvention showing an initial display of the received freehand user inputappended to a feedback loop in a block diagram;

FIG. 5B shows an electronic device rendering of the partial componentdepicted in the freehand user input of FIG. 5A;

FIG. 5C is a view of the illustrative embodiment of the presentinvention showing a displayed menu of choices of finished componentspossibly completing the previously drawn component of FIG. 5A and FIG.5B;

FIG. 5D is a view of the illustrative embodiment of the presentinvention showing the view of FIG. 5C wherein the user has selected oneof the possibilities displayed in the menu by entering additionalfreehand input corresponding to a menu choice;

FIG. 5E shows the final electronic device drawn rendering of theadditional component of FIG. 5D.

FIG. 6A shows a user drawn output being added to the diagram of FIG. 5E;

FIG. 6B shows a electronic device drawn replacement for the user inputdisplayed in FIG. 6A;

FIG. 7A shows freehand user input indicating a request for an additionalview of the diagram being displayed; and

FIG. 7B shows a zoomed-out viewer superimposed on a portion of the blockdiagram in response to the received freehand user input displayed inFIG. 7A.

DETAILED DESCRIPTION

The illustrative embodiment of the present invention allows a user toconstruct, modify, and manipulate block diagram elements using apointing device. A block diagram environment displaying a block diagramreceives freehand user input from a pointing device such as an opticalpen or a mouse. The freehand user input is entered by patterns andgestures and is not limited to displayed elements on a template as isfound in conventional drag and drop systems. The entered patterns andsymbols are compared to stored patterns of block diagram components andfeatures of components and used as the basis for electronic device drawndiagram components or component features which are added to the blockdiagram. By allowing freehand entry of input data in such a manner, theillustrative embodiment of the present invention greatly expands andsimplifies the creation and modification of block diagram features andcomponents.

FIG. 1 depicts an environment suitable for practicing the illustrativeembodiment of the present invention. An electronic device 2 holds ablock diagram environment 4. The electronic device 2 may be a personalcomputer, workstation, laptop, server, mainframe, PDA or some other typeof electronic device equipped with a processor and able to support theblock diagram environment 4. The block diagram environment 4 may be ablock diagram environment such as that found in Simulink® from TheMathWorks, Inc. of Natick, Mass., and Labview® from National Instrumentsof Austin, Tex. The block diagram environment 4 includes a least one setof block diagram model data 6 for a block diagram. The block diagrammodel data 6 may be a block diagram model of a system. Also included onthe electronic device 2 is a storage location 8. The storage location 8includes a stored collection of block diagram components and blockdiagram component feature patterns 10. Those skilled in the art willrecognize that storage location 8 may also be located at other locationsaccessible to the block diagram environment 4. For example, the storagelocation 8 may be located on a remote server in a distributedenvironment. A user 12 manipulates a pointing device 18 which isinterfaced with the electronic device 2. The pointing device 12 may be amouse, trackball, joystick, mousepad, and light pen. A display 14 holdsa rendering of block diagram 16. Input received by the block diagramenvironment 4 from the user manipulating the pointing device 18 iscompared to the block diagram component/feature patterns 10 which areused to render a electronic device drawn version of the user input onthe display 14.

FIG. 2A depicts the sequence of steps followed by the illustrativeembodiment of the present invention to match freehand user input tostored block diagram components/features of components. The sequencebegins when the user manipulates the pointing device 18 to send input tothe displayed block diagram 16 via the block diagram environment 4 (step30). The technique used for the user input varies with the type of inputdevice being utilized. For example, if a mouse is being used, the usermay drag a cursor around the displayed block diagram 16 in the outlineof the shape of the component/feature of a component that the user isattempting to add to the block diagram 16. Similarly, if an opticalpointing device is being used, the user may gesture at the diagram inthe shape of the component/feature of a component. The input data isreceived at the electronic device 2(step 32) and a graphicalrepresentation of the input is displayed in the rendering of the blockdiagram 16 (step 34). For example, a user may draw a shape in thedisplayed block diagram using a mouse connected to the electronic device2. The user 12 may position the mouse cursor at the appropriate spot inthe display 14. By depressing a mouse button and moving the mouse, aline is rendered in the displayed block diagram by the block diagramenvironment 4. The rendering is the result of the block diagramenvironment 4 intercepting and handling the mouse messages generated bythe depression of the button on the mouse. The handling of mousemessages is well-known to those with experience in the Windows®programming environment (e.g.: WM_RBUTTONDOWN, WM_LBUTTONDOWN). Themessage handler cross references the coordinates associated with theintercepted message with the coordinates of the model data beingdisplayed on the display in order to orient the input data with theblock diagram data.

The shape of the user input as captured is then compared to storedpatterns of block diagram components and features of block diagramcomponents (step 36). The comparison may be made when the input dataceases, for example, through a WM_LBUTTONUP message or the failure toextend a line being rendered in response to the movements of an opticalpen. Alternatively, the illustrative embodiment of the present inventionmay attempt comparisons based on a time parameter. A determination ismade for each comparison as to whether a definitive match has beendetermined (step 37). The determination as to what percentage of theuser input must correspond to the stored pattern to constitute adefinitive match in the illustrative embodiment is an implementationchoice. The illustrative embodiment of the present invention checks forpoints of correspondence between the user input and the stored diagramcomponent/feature patterns 10. For some shapes, the borders of enclosedinput shapes may be compared to the stored diagram component/featurepatterns 10. For other shapes, both the borders, interior and/orexterior shapes may be checked for correspondence. The size of the inputshapes may be normalized against the stored features/patterns with apercentage of deviation being allowed from the stored component/featuresize. The stored diagram components/feature patterns 10 may be stored ina database including a size attribute associated with thecomponent/feature. The comparison may only compare the entered patternto stored components/features within the deviation range. Distances andangles of the input data are compared to the stored/components featuresaccounting for pre-defined amount of size deviation.

The process of determining a definitive match while normalizing for thesize differential between the input data and the stored patterns isillustrated in greater detail in the flowchart of FIG. 2B. Afterreceiving the freehand user input (step 39), the illustrative embodimentof the present invention analyzes the received input to identifyattributes of the input data (e.g.:length of line, direction of line,angle between lines, etc.) (step 41). The stored components/features ofcomponents are retrieved and similarly analyzed (step 43).Alternatively, the stored patterns may have already been analyzed inwhich case the attributes for the stored patterns are retrieved. Theinput attributes are then compared to the stored attribute patternswhile normalizing for size differential (step 45). The normalizationprocess is necessary since in most cases the user's freehand input willnot be to exactly the same scale as the stored patterns. Any matchesfrom the comparison are identified (step 47).

In the event of a definitive match, an electronic device drawn componentor feature of a component corresponding to the user input data isrendered in the block diagram 16 (step 38). Alternatively, if there isnot a definitive match, but rather several possibilities, the user maybe presented with a menu of possible block diagram components orfeatures of components which may correspond to component/feature theuser was attempting to add to the block diagram (step 40). Following auser selection of the appropriate component or feature (step 42) theelectronic device adds the input data to the block diagram model dataand draws the component or feature of the component in the rendering ofthe block diagram 16(step 44).

The visual effect of the matching of freehand user input to the storedpatterns is depicted in FIGS. 3A and 3B. FIG. 3A depicts a view 50 of ablock diagram environment in the illustrative embodiment of the presentinvention in which a user has entered freehand input 52 representing atriangular shape. The illustrative embodiment of the present inventionmatches the freehand user input to a stored pattern in the collection ofpatterns of block diagram components and component features. The blockdiagram environment 4 generates the view 50 of FIG. 3B showing anelectronic device rendered gain block 54.

The illustrative embodiment of the present invention may also be used toadd additional components to an already existing block diagram asdepicted in FIGS. 4A and FIG. 4B. FIG. 4A depicts the view 50 andcomputer generated gain block 54 of FIGS. 3A and 3B to which freehanduser input of a rough approximation of a feedback signal 56 has beenadded to the electronic device drawn components previously appearing onthe display. As before, the freehand user input for the feedback signalapproximation 56 is compared to the diagram component and featurepatterns 10 that are stored at a location 8 accessible to the blockdiagram environment 4. In FIG. 4B a computer rendered feedback signal 58is then generated to replace the user drawn input 56. Depending upon theimplementation, the electronic device drawn feedback signal may besuperimposed over the user freehand input signal 56 until such time asthe user indicates a confirmation of the substituted element. Thoseskilled in the art will recognize that such confirmation may be given ina number of different manners such as by clicking on the electronicdevice drawn component or component feature or clicking a control buttonin a popup dialog box which requests verification.

The sequence of views generated by the illustrative embodiment of thepresent invention to choose a component from among many components isillustrated in FIGS. 5A through 5E. FIG. 5A shows a view 50 with theelectronic device generated gain block 54 and feedback signal 58 as wellas additional user freehand input 60 of a circular shape near the end ofthe feedback signal. FIG. 5B shows the view 50 including the componentspreviously discussed in FIG. 5A with the user input 60 replaced by anelectronic device generated circle 62. The electronic device generatedcircle 62 represents a partially completed block diagram component. FIG.5C depicts the view 50 with the gain block 54, feedback signal 58 andcircle 62 as well as additional choices displayed on a menu 64. The menu64 displays a list of potential matches for the partially completedelement 62. FIG. 5D depicts the previous view 50 as well as anadditional freehand feature 66 added by the user to the previouslydisplayed computer rendered circle 62. The additional freehand feature66 matches one of the components 67 displayed in the menu 64. FIG. 5Eshows the electronic device generated replacement of the user drawnfeature 66. The result is a sum block 68 added on to the end of thefeedback signal 58.

A user may also add additional components to previously stored diagramsusing the illustrative embodiment of the present invention. For example,FIG. 6A depicts view 50 including the gain block 54, feedback signal 58,and sum block 68 to which the user indicates a desire to add an outputport through the creation of a freehand user input. Those skilled in theart will recognize that the previously stored block diagram may beretrieved from any location accessible to the block diagram environment4. FIG. 6B shows the result after matching the freehand user input to astored pattern, the generation of a computer rendered output port 72.

Those skilled in the art will recognize that alternate forms of analysisrather than an explicit comparison may also be used by the illustrativeembodiment of the present invention to identify the freehand user input.For example, a neural net may be used to determine the type of blockdiagram component/feature the user is attempting to add via freehanduser input. The neural net may attempt to analyze small pieces of userinput in parallel to identify the desired component/feature the user isattempting to add to the block diagram.

The illustrative embodiment of the present invention may also be used tocall up block diagram tools through the use of freehand gestures. FIG.7A depicts a view 80 of a portion of a block diagram 82. A user sketchenclosing the lower left hand corner of the displayed view 80 creates arough box 84. The gesture is evaluated by comparing it to storedpatterns and results in the calling of a zoomed-out viewer showing theentire block diagram or subsystem 86 (of which the main view 80 is onlydisplaying a portion) superimposed in the lower left corner of the view.

Similar to the procedure used to call up block diagram tools, apre-defined input may also be used to cause the deletion of a component.For example, an “x” written over a diagram component may be interpretedas a delete signal. Similarly, pre-defined input such as a symbol mayresult in the insertion of a complete block or subsystem into the blockdiagram.

In one aspect of the illustrative embodiment of the present invention, auser may switch between an editing mode and an interpreted mode in theblock diagram environment 4. The editing mode allows the user to makechanges to the block diagram without the pattern comparison takingplace. In the interpreted mode, once the user activates the mode,pattern comparison is performed in response to the user input. Thisability to toggle the interpreted mode on and off prevents unwantedcomponents and component features from being inadvertently added to ablock diagram.

In another aspect of the illustrative embodiment of the presentinvention, the user may teach the block diagram environment to interpretspecific freehand user input gestures. User input may be entered and theenvironment subsequently instructed to interpret the entered input in acertain manner and perform an associated action. For example, the usermay enter a learning mode and enter freehand input. After entering theinput in the learning mode, the user indicates to the block diagramenvironment a specific action (e.g.: perform function, add component)that is to be associated with the input. The entered pattern and itsassociation is saved , and subsequent user entries of that pattern ininterpreted mode result in the specified action being performed.

Although the examples contained herein have been discussed withreference to a block diagram environment, it should be appreciated thatthe present invention may also be implemented in other designenvironments. For example, the method of accepting and handling freehanduser input that have been discussed above may be implemented in a userinterface design system where various controls are added to a userinterface in response to the received freehand user input. Theillustrative embodiment of the present invention may also be practicedin a software diagram environment such as that found in Stateflow® fromThe MathWorks, Inc. of Natick, Mass. or Unified Modeling Language (UML)environments.

Since certain changes may be made without departing from the scope ofthe present invention, it is intended that all matter contained in theabove description or shown in the accompanying drawings be interpretedas illustrative and not in a literal sense. Practitioners of the artwill realize that the system configurations depicted and describedherein are examples of multiple possible system configurations that fallwithin the scope of the current invention. Likewise, the sequence ofsteps utilized in the illustrative flowcharts are examples and not theexclusive sequence of steps possible within the scope of the presentinvention.

1. In an electronic device holding a block diagram environment with atleast one block diagram, said block diagram being a model of a system,said electronic device interfaced with a display surface displaying saidblock diagram, a method, comprising: receiving freehand user inputentered with a pointing device into said block diagram; comparing saiduser input to at least one of a stored plurality of patterns of at leastone of block diagram components and block diagram component features;adding said at least one of said block diagram components and blockdiagram component features to said model, said adding occurring as aresult of a matching comparison between said freehand user input and atleast one of said plurality of patterns; and rendering programmaticallywith the block diagram environment at least one of said block diagramcomponents and said block diagram component features in said diagram. 2.The method of claim 1, further comprising: displaying said freehand userinput in said diagram prior to said rendering.
 3. The method of claim 2,further comprising: replacing said displayed freehand user input with aprogrammatic rendering of said matching pattern.
 4. The method of claim1 wherein said freehand user input is added to an existingprogrammatically rendered diagram component in said diagram.
 5. Themethod of claim 4, further comprising: modifying said existingprogrammatically rendered pattern by programmatically rendering at leastone additional feature based on matching said user input to a storedpattern.
 6. The method of claim 1 wherein said freehand user input isone of a complete diagram component and complete diagram componentfeature.
 7. The method of claim 1 wherein said freehand user input isone of a partial diagram component and partial diagram componentfeature.
 8. The method of claim 1, further comprising: providing achoice of at least two of diagram components and diagram componentfeatures to said user prior to said rendering, said choice prompting auser for a selection of one of said at least two diagram components anddiagram component features.
 9. The method of claim 8, furthercomprising: rendering programmatically at least one of said diagramcomponents and diagram component features based on said selection. 10.The method of claim 8 wherein the identity of the at least two diagramcomponents and diagram component features appearing in said choice isbased on the context of said diagram.
 11. The method of claim 1 whereinsaid freehand user input is a symbol.
 12. The method of claim 1 whereinsaid diagram is a block diagram.
 13. The method of claim 1, furthercomprising: manipulating at least one of a diagram component and diagramcomponent feature displayed in said diagram as a result of said userinput.
 14. The method of claim 1, further comprising: deleting at leastone of a diagram component and diagram component feature displayed insaid diagram as a result of said user input.
 15. The method of claim 1,further comprising: providing diagramming tools to a user in said blockdiagram environment in response to said freehand user input.
 16. Themethod of claim 15 wherein said tool is a zoomed-out viewer superimposedover at least a portion of said displayed diagram.
 17. The method ofclaim 1, further comprising: providing at least one visually displayedsymbol associated with an attribute type; selecting said symbolassociated with an attribute type with said pointing device;subsequently selecting with said pointing device at least one of adiagram component and diagram component feature displayed in saiddiagram; and assigning programmatically said attribute type associatedwith said symbol to the selected at least one of a diagram component anddiagram component feature.
 18. The method of claim 1, furthercomprising: displaying said freehand user input on said display surface;superimposing the programmatically rendered pattern over the displayedfreehand user input; and removing said freehand user input from saiddisplay surface following a user indication of the correctness of theprogrammatically rendered at least one of said diagram component anddiagram component feature.
 19. The method of claim 1 wherein saidcomparing occurs only after said user selects an interpreted mode optionfor said block diagram environment.
 20. In an electronic deviceinterfaced with a display surface, a system comprising: a block diagramenvironment with at least one block diagram displayed on said displaysurface; a pointing device interfaced with said electronic device, saidpointing device used to transmit freehand input from a user to saidblock diagram displayed on said display surface; and a storage locationholding a plurality of block diagram component patterns and diagramcomponent feature patterns, said user input being compared to saidplurality of block diagram component patterns and diagram componentfeature patterns, said block diagram environment programmaticallyrendering one of a diagram component and diagram component feature insaid block diagram based on a matching comparison between said freehanduser input and at least one of said plurality of patterns.
 21. Thesystem of claim 20 wherein said rendering superimposes saidprogrammatically rendered one of a diagram component and diagramcomponent feature over said user input in said diagram displayed on saiddisplay surface.
 22. The system of claim 20 wherein said user inputrepresents one of a partial diagram component and partial diagramcomponent feature.
 23. The system of claim 20 wherein said user inputrepresents one of a complete diagram component and complete diagramcomponent feature.
 24. The system of claim 20, further comprising: amenu of choices displayed to said user prior to the rendering of saidone of a diagram component and diagram component feature, said choicesrepresenting possible diagram components and diagram component featuresmatching said user input.
 25. The system of claim 24 wherein a userselects one of the choices, the selected choice then being rendered as amatching comparison.
 26. The system of claim 20 wherein said user inputis of an additional feature to a previously rendered diagram component.27. The system of claim 20 wherein said pointing device is one of amouse, trackball, joystick, mousepad, and light pen.
 28. The system ofclaim 20 wherein said block diagram environment is a block diagramenvironment and said block diagram is a block diagram.
 29. In anelectronic device holding a block diagram environment with at least oneblock diagram, said electronic device interfaced with a display surfacedisplaying said diagram, a medium holding executable steps for a method,said method comprising: comparing freehand user input entered with apointing device into said diagram to at least one of a stored pluralityof patterns; and rendering programmatically with the block diagramenvironment one of a diagram component and diagram component feature insaid diagram, said diagram component based on a matching comparisonbetween said freehand user input and at least one of said plurality ofpatterns.
 30. The medium of claim 29 wherein said method furthercomprises: displaying said freehand user input in said diagram prior tosaid rendering.
 31. The medium of claim 30 wherein said method furthercomprises: replacing said displayed freehand user input with saidprogrammatically rendered one of a diagram component and diagramcomponent feature.
 32. The medium of claim 29 wherein said freehand userinput is added to an existing electronic device drawn diagram componentin said diagram.
 33. The medium of claim 32 wherein said method furthercomprises: modifying said existing programmatically rendered componentby programmatically rendering at least one additional feature based onmatching said user input to a stored pattern.
 34. The medium of claim 29wherein said freehand user input is one of a complete diagram componentand complete diagram component feature.
 35. The medium of claim 29wherein said freehand user input is one of a partial diagram componentand partial diagram component feature.
 36. The medium of claim 29wherein said method further comprises: providing a choice of at leasttwo diagram components and diagram component features to said user priorto said rendering, said choice prompting a user for a selection of oneof said at least two diagram components and diagram component features.37. The medium of claim 36, wherein said method further comprises:rendering one of said diagram components and diagram component featuresbased on said selection.
 38. The medium of claim 36 wherein the identityof the at least two of said diagram components and diagram componentfeatures appearing in said choice is based on the context of saiddiagram.
 39. The medium of claim 29 wherein said freehand user input isa symbol.
 40. The medium of claim 29 wherein said diagram is a blockdiagram.
 41. The medium of claim 29 wherein said method furthercomprises: manipulating at least one of a diagram component and diagramcomponent feature displayed in said diagram as a result of said userinput.
 42. The medium of claim 29 wherein said method further comprises:deleting at least one of a diagram component and diagram componentfeature displayed in said diagram as a result of said user input. 43.The medium of claim 29 wherein said method further comprises: providingdiagramming tools to a user in said block diagram environment inresponse to said freehand user input.
 44. The medium of claim 43 whereinsaid tool is a zoomed-out viewer superimposed over at least a portion ofsaid displayed diagram.
 45. The medium of claim 29 wherein said methodfurther comprises: providing at least one visually displayed symbolassociated with an attribute type; selecting said symbol associated withan attribute type with said pointing device; subsequently selecting withsaid pointing device at least one of a diagram component and diagramcomponent feature displayed in said diagram; and assigningprogrammatically said attribute type associated with said symbol to theselected at least one of a diagram component and diagram componentfeature.
 46. In an electronic device holding a block diagram environmentwith at least one block diagram, said block diagram being a model of asystem, said electronic device interfaced with a display surfacedisplaying said block diagram, a method, comprising: receiving freehanduser input entered with a pointing device into said block diagram;analyzing said user input to identify said user input as at least one ofa block diagram component and block diagram component feature; addingsaid at least one of said block diagram components and block diagramcomponent features to said model, said adding occurring as a result ofsaid analysis; and rendering programmatically at least one of said blockdiagram components and said block diagram component features in saiddiagram.
 47. The method of claim 46 wherein said block diagram componentis a block diagram subsystem.
 48. The method of claim 46 wherein saidanalysis is performed using a neural net.
 49. In an electronic deviceholding a block diagram environment with at least one block diagram,said block diagram being a model of a system, said electronic deviceinterfaced with a display surface displaying said block diagram, amethod, comprising: receiving freehand user input entered with apointing device into said block diagram environment executing in alearning mode; receiving a user indication associating said freehanduser input with an action; storing said user input and its associatedaction as one of a plurality of patterns; receiving freehand user inputentered with a pointing device into said block diagram environmentexecuting in an interpretive mode; comparing said user input to at leastone of a stored plurality of patterns of at least one of block diagramcomponents and block diagram component features; and performing theassociated action, said performing occurring as a result of a matchingcomparison between said freehand user input and at least one of saidplurality of patterns.
 50. In an electronic device holding a blockdiagram environment with at least one block diagram, said block diagrambeing a model of a system, said electronic device interfaced with adisplay surface displaying said block diagram, a medium holdingexecutable steps for a method, said method comprising: receivingfreehand user input entered with a pointing device into said blockdiagram environment executing in a learning mode; receiving a userindication associating said freehand user input with an action; storingsaid user input and its associated action as one of a plurality ofpatterns; receiving freehand user input entered with a pointing deviceinto said block diagram environment executing in an interpretive mode;comparing said user input to at least one of a stored plurality ofpatterns of at least one of block diagram components and block diagramcomponent features; and performing the associated action, saidperforming occurring as a result of a matching comparison between saidfreehand user input and at least one of said plurality of patterns. 51.In an electronic device interfaced with a display surface, a systemcomprising: a software diagram environment with at least one softwarediagram displayed on said display surface; a pointing device interfacedwith said electronic device, said pointing device used to transmitfreehand input from a user to said software diagram displayed on saiddisplay surface; and a storage location holding a plurality of softwarediagram component patterns and diagram component feature patterns, saiduser input being compared to said plurality of software diagramcomponent patterns and diagram component feature patterns, said softwarediagram environment programmatically rendering one of a diagramcomponent and diagram component feature in said software diagram basedon a matching comparison between said freehand user input and at leastone of said plurality of patterns.
 52. The system of claim 51 whereinsaid software diagram is one of a Stateflow® diagram and UnifiedModeling Language (UML) diagrams.